package com.zh.risk.service.impl;

import com.zh.risk.entity.Item;
import com.zh.risk.entity.RiskModel;
import com.zh.risk.service.ModelAvgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * code is far away from bug with the animal protecting
 * ┏┓　　　┏┓
 * ┏┛┻━━━┛┻┓
 * ┃　　　　　　　┃
 * ┃　　　━　　　┃
 * ┃　┳┛　┗┳　┃
 * ┃　　　　　　　┃
 * ┃　　　┻　　　┃
 * ┃　　　　　　　┃
 * ┗━┓　　　┏━┛
 * 　　┃　　　┃神兽保佑
 * 　　┃　　　┃代码无BUG！
 * 　　┃　　　┗━━━┓
 * 　　┃　　　　　　　┣┓
 * 　　┃　　　　　　　┏┛
 * 　　┗┓┓┏━┳┓┏┛
 * 　　　┃┫┫　┃┫┫
 * 　　　┗┻┛　┗┻┛
 *
 * @Description:
 * @Author: Liard
 * @Create in: 2020/9/9 16:03
 * @Version: 1.0.1
 */
@Service
public class ModelAvgServiceImpl implements ModelAvgService {

    @Autowired
    private MongoTemplate mongoTemplate;


    @Override
    public int sumMapping(RiskModel model) {
        List<Item> items = model.getItems();
        // 查询条件
        for (Item item: items) {
            if (item.getOperator().equals("")) {}
            Criteria criteria = Criteria.where("userId").is("userId");
        }
        Aggregation agg = Aggregation.newAggregation(
                //Aggregation.match(Criteria.where("groupId").is(5)),
                Aggregation.group("groupId").count().as("total"),
                Aggregation.project("total").and("groupId").previousOperation(),
                Aggregation.sort(Sort.DEFAULT_DIRECTION, "total"));
//        List<StaCount> list = mongoTemplate.aggregate(agg, "currentUser", StaCount.class).getMappedResults();

        return 0;
    }
}
